1. Field of the Invention
This invention relates to reassigning a client and more particularly relates to seamlessly reassigning a client among computation modules such as server blades in a data center.
2. Description of the Related Art
A data processing device such as a computer workstation, a terminal or the like, herein referred to as a client, may often employee a remote computational module to execute one or more software processes. The remote computational module may be a server. In a certain embodiment, the computation module is a server blade, a modular server with one or more processors, memory, interconnection logic, and communication capabilities residing in an enclosure such as a rack mounted chassis with a plurality of other server blades. The enclosure may include storage systems, storage interfaces, and communication interfaces. A data center may include a plurality of enclosures.
The client may communicate a request or a beacon to one or more data centers, requesting association with a computation module. A data center may respond to the beacon, communicating the ability of the data center to associate the client with a computation module. A predetermined list may direct the association of the client to a computation module of a specified data center. For example, the list may direct the association of the client with one of the computation modules with sufficient spare processing bandwidth in a first data center. Spare processing bandwidth may be spare time during which the computation module is not executing another software process. If no computation module has sufficient spare processing bandwidth in the first data center, the computation module may direct the association of the client to a computation module with sufficient spare processing bandwidth in a second data center.
The data center typically associates the client to computation modules with sufficient processing bandwidth, response latency or time required for communications to pass between the client and the computation module, and storage latency or time required for communications to pass between the computation module and a storage system such that the computation module may provide an expected level of service to the client. For example, the data center may associate a first client with a first computation module of which ten percent (10%) of processing bandwidth is utilized by a second client rather than associate the first client with a second computation module of which eighty percent (80%) of processing bandwidth is utilized by a third client.
Unfortunately, the available computation module processing bandwidth may change after the first client is associated with the first computation module. For example, the processing bandwidth of the first computation module utilized by the second client may increase to ninety percent (90%) of processing bandwidth. The second client may increase utilization of processing bandwidth by executing a processing intensive software process such as a virus scan process or the like. Such a change in available processing bandwidth seriously degrades the level of service to the first client.
When the level of service to a client is sufficiently degraded, the data center may reassign the client to a computation module capable of better providing the acceptable level of service. For example, the data center may reassign the client from the first computation module to a second computation module. Unfortunately, reassigning the client may further degrade the service to the client and may require suspending and/or terminating one or more software processes. For example, the software process initially executed on a first computation module may appear completely unresponsive to the client while the client is reassigned to the second computation module. Thus reassigning the client may degrade service more than leaving the client associated with a computation module without sufficient processing bandwidth.
In addition, the response latency between the second computation module and the client may be inadequate to provide the expected level of service. The storage latency between the second computation module and a second storage system may also be inadequate.
From the foregoing discussion, it should be apparent that a need exists for an apparatus, system, and method that seamlessly reassign a client between computation modules. Beneficially, such an apparatus, system, and method would improve the level and consistency of service to the client.